home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Prog / M / LSC213.cpt / MemoryMgr.h < prev    next >
Encoding:
C/C++ Source or Header  |  1987-09-26  |  1.6 KB  |  88 lines  |  [TEXT/KAHL]

  1.  
  2. /*
  3.  *  MemoryMgr.h
  4.  *
  5.  *  Copyright (c) 1986, 1987 THINK Technologies, Inc.
  6.  *  These interfaces are based on information copyrighted
  7.  *  by Apple Computer, Inc., 1985, 1986, 1987.
  8.  *
  9.  */
  10.  
  11.  
  12. #ifndef    _MemoryMgr_
  13. #define _MemoryMgr_
  14.  
  15. #ifndef    _MacTypes_
  16. #include "MacTypes.h"
  17. #endif
  18.  
  19. /* maximum block size */
  20. #define    maxSize        0x800000
  21.  
  22. /* result codes    */
  23. enum {
  24.     memLockedErr = -117,
  25.     memSCErr,
  26.     memBCErr,
  27.     memPCErr,
  28.     memAZErr,
  29.     memPurErr,
  30.     memWZErr,
  31.     memAdrErr,
  32.     nilHandleErr,
  33.     memFullErr,
  34.     memROZErr = -99
  35. };
  36.  
  37. typedef    struct 
  38.     {
  39.     Ptr            bkLim;
  40.     Ptr            purgePtr;
  41.     Ptr            hFstFree;
  42.     long        zcbFree;
  43.     ProcPtr        gzProc;
  44.     int            moreMast;    
  45.     int            flags;    
  46.     int            cntRel;
  47.     int            maxRel;
  48.     int            cntNRel;
  49.     int            maxNRel;
  50.     int            cntEmpty;
  51.     int            cntHandles;
  52.     long        minCBFree;
  53.     ProcPtr        purgeProc;    
  54.     Ptr            sparePtr;
  55.     Ptr            allocPtr;
  56.     int            heapData;
  57.     }Zone, * THz ;        
  58.  
  59. /*  functions returning non-integral values  */
  60. pascal THz GetZone();
  61. pascal THz SystemZone();
  62. pascal THz ApplicZone();
  63. pascal THz HandleZone();
  64. pascal Handle RecoverHandle();
  65. pascal THz PtrZone();
  66. pascal Handle GZSaveHnd();
  67. pascal Ptr TopMem();
  68. pascal Ptr GetApplLimit();
  69. pascal Handle NewEmptyHandle();
  70.  
  71. /*  low-memory globals  */
  72. extern Ptr MemTop : 0x108;
  73. extern Ptr BufPtr : 0x10C;
  74. extern Ptr HeapEnd : 0x114;
  75. extern THz TheZone : 0x118;
  76. extern Ptr ApplLimit : 0x130;
  77. extern int MemErr : 0x220;
  78. extern THz SysZone : 0x2A6;
  79. extern THz ApplZone : 0x2AA;
  80. extern Ptr ROMBase : 0x2AE;
  81. extern Ptr RAMBase : 0x2B2;
  82. extern long Lo3Bytes : 0x31A;
  83. extern ProcPtr IAZNotify : 0x33C;
  84. extern Ptr CurrentA5 : 0x904;
  85. extern Ptr CurStackBase : 0x908;
  86.  
  87.  
  88. #endif _MemoryMgr_